招生考试网
学历| 高考 美术高考 考研 自考 成考 专升本 中考 会考 外语| 四六级 职称英语 商务英语 公共英语 日语能力 翻译资格 JTEST
资格| 公务员 报关员 银行从业 司法 导游 教师资格 报关 财会| 会计证 经济师 会计职称 注册会计 税务师 资产评估 审计师
工程| 一建 二建 造价师 造价员 咨询师 监理师 安全师 医学| 卫生资格 执业医师 执业药师 执业护士 | 教案 论文 文档
IT类| 计算机等级 计算机软考 职称计算机 高校计算机 推荐-国家公务员 事业单位招聘 军校国防生 自主招生 艺术特长生 招飞
 3773考试网 - 计算机等级考试 - 高校计算机 - 正文

计算机二级JAVA辅导:四种Filter过滤器

来源:fjzsksw.com 2009-11-4 10:49:30

从J2EE1.3开始,Servlet2.3规范中加入了对过滤器的支持。过滤器能够对目标资源的请求和响应进行截取。过滤器的工作方式分为四种,下面让我们分别来看看这四种过滤器的工作方式:

  1、request过滤器

  这种过滤器的工作方式比较简单,大家也经常遇到,如下图所示:以下是web.xml文件配置方式:

  <filter>

  <filter-name>myFilter</filter-name>

  <filter-class>xx.MyFilter</filter-class>

  </filter>

  <filter-mapping>

  <filter-name>myFilter</filter-name>

  <servlet-name>目标资源一</servlet-name>

  </filter-mapping>

  下面我们更改一下web.xml文件的配置,如下方式:

  <filter>

  <filter-name>myFilter</filter-name>

  <filter-class>xx.MyFilter</filter-class>

  </filter>

  <filter-mapping>

  <filter-name>myFilter</filter-name>

  <servlet-name>目标资源一</servlet-name>

  </filter-mapping>

  <filter-mapping>

  <filter-name>myFilter</filter-name>

  <servlet-name>目标资源二</servlet-name>

  </filter-mapping>

  也就是说此过滤器对目标资源一和目标资源二都进行过滤,然后当目标资源一被访问的时候我们将请求转发给目标资源二,那么这个时候过滤器是怎么工作的呢?如下图所示:我们可以看到,当我们访问目标资源一时过滤器截取了请求,然后再转发给目标资源一,然后再转发给目标资源二,从图中我们可以看到过滤器没有截取转发到目标资源二的请求,但是我们已经在web.xml文件中配置了该过滤器对目标资源二的过滤,为什么又没有起到过滤作用呢?

  答案就在于,目标资源一是客户端直接访问,而目标资源二是被转发过来的,这时过滤器就不能过滤目标资源二。如果你直接访问目标资源二,你会发现该过滤器起到了作用?

  我们上面的web.xml文件配置与以下方式等价:

  <filter>myFilter</filter>

  <filter-name>myFilter</filter-name>

  <filter-class>xx.MyFilter</filte-class>

  </filter>

  <filter-mapping>

  <filter-name>myFilter</filter-name>

  <servlet-name>目标资源一</servlet-name>

  <dispatcher>REQUEST</dispatcher>

  </filter-mapping>

  <filter-mapping>

  <filter-name>myFilter</filter-name>

  <servlet-name>目标资源二</servlet-name>

  <dispatcher>REQUEST</dispatcher>

  </filter-mapping>

  这种方式的配置,说明只有直接访问该目标资源时该过滤器才会起作用,对转发到该目标资源的请求将忽略不处理。

  那如果我想对转发到目标资源二的请求进行过滤,那怎么办呢?答案见,下一种过滤器,forward过滤器。



  • 上一个文章:
  • 网站版权与免责声明
    ①由于各方面情况的不断调整与变化,本网所提供的相关信息请以权威部门公布的正式信息为准.
    ②本网转载的文/图等稿件出于非商业性目的,如转载稿涉及版权及个人隐私等问题,请在两周内邮件fjksw@163.com联系.
    最新文章


    | 关于我们 | 联系我们 | 版权申明 | 网站导航 |
    琼ICP备12003406号